-
Notifications
You must be signed in to change notification settings - Fork 4.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DiagnosticSourceEventSource supports base class properties #55613
Conversation
Fixes dotnet#41300 Previously DiagnosticSourceEventSource would only iterate and recognize properties that were declared on the most derived type. Now it can capture properties that were inherited from a base class too.
Tagging subscribers to this area: @tarekgh, @tommcdon, @pjanotti Issue DetailsFixes #41300 Previously DiagnosticSourceEventSource would only iterate and recognize properties that were declared on the most derived type. @dotnet/dotnet-diag - can someone review?
|
EventSource also only looks at the derived type's fields and methods. I remember it being an intentional decision, but this was back in 2014ish and I can't remember why it was intentional. There was some scenario it broke to include the base class fields/methods. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
I can think if the base and inherited classes define non-virtual same property. public class A { public int P1 { get; set; } }
public class B : A { public new int P1 { get; set; } } |
Thanks guys! EventSource requires every method to be annotated with [Event] or [NonEvent] so I could easily imagine including new methods would break the init logic for some pre-existing EventSource. I think that will be a fairly different scenario than this one. It is theoretically possible that someone wrote a DiagnosticSourceEventSource listener that will fail if more properties than expected are enumerated, but it seems unlikely:
|
…debugger_custom_views * 'main' of github.com:thaystg/runtime: (125 commits) [wasm] [debugger] Support method calls (dotnet#55458) [debugger] Fix debugging after hot reloading (dotnet#55599) Inliner: Extend IL limit for profiled call-sites, allow inlining for switches. (dotnet#55478) DiagnosticSourceEventSource supports base class properties (dotnet#55613) [mono] Fix race during mono_image_storage_open (dotnet#55201) [mono] Add wrapper info for native func wrappers. (dotnet#55602) H/3 and Quic AppContext switch (dotnet#55332) Compression.ZipFile support for Unix Permissions (dotnet#55531) [mono] Fix skipping of static methods during IMT table construction. (dotnet#55610) Combine System.Private.Xml TrimmingTests projects (dotnet#55606) fix name conflict with Configuration class (dotnet#55597) Finish migrating RSAOpenSsl from RSA* to EVP_PKEY* Disable generic math (dotnet#55540) Obsolete CryptoConfig.EncodeOID (dotnet#55592) Address System.Net.Http.WinHttpHandler's nullable warnings targeting .NETCoreApp (dotnet#54995) Enable Http2_MultipleConnectionsEnabled_ConnectionLimitNotReached_ConcurrentRequestsSuccessfullyHandled (dotnet#55572) Fix Task.WhenAny failure mode when passed ICollection of zero tasks (dotnet#55580) Consume DistributedContextPropagator in DiagnosticsHandler (dotnet#55392) Add property ordering feature (dotnet#55586) Reduce subtest count in Reflection (dotnet#55537) ...
Fixes #41300
Previously DiagnosticSourceEventSource would only iterate and recognize properties that were declared on the most derived type.
Now it can capture properties that were inherited from a base class too.
@dotnet/dotnet-diag - can someone review?